package modelo.persistir;

import java.util.ArrayList;

import modelo.mapa.Ubicacion;
import modelo.servicios.PozoDeAgua;
import modelo.servicios.RedDeAgua;
import modelo.servicios.RedElectrica;
import modelo.servicios.TuberiaDeAgua;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class PozoPersistir {

	public static JsonObject persistir(ArrayList elems)
	{
		Gson gson = new Gson();
		JsonObject jObject=new JsonObject();
		 Ubicacion ubi = (Ubicacion)elems.get(0);
		 JsonObject aa=UbicacionPersistir.persistir(ubi.obtenerDatosPersistibles());
		 jObject.add("Ubicacion",aa );
		 ArrayList<RedDeAgua> redes=(ArrayList<RedDeAgua>)elems.get(1);
		 jObject.add("Redes de Agua", RedDeAguaPersistir.persistirArray(redes));
		 return jObject;
	}

	public static JsonArray persistirArray(ArrayList<PozoDeAgua> listadoPozosDeAgua)
	{
		JsonObject jObject=new JsonObject();
		JsonArray jArray=new JsonArray();		
		for(PozoDeAgua poz:listadoPozosDeAgua){
			jArray.add(PozoPersistir.persistir(poz.obtenerDatosPersistibles()));		
		}
		return jArray;
	}

	public static ArrayList cargar(String comp)
	{
		ArrayList lista=new ArrayList();
		JsonParser parser = new JsonParser();
		JsonObject carg = parser.parse(comp).getAsJsonObject();		
		String ubi=carg.get("Ubicacion").toString();
		ArrayList ubicacion = UbicacionPersistir.cargar(ubi);
		Ubicacion ubicacionFin=new Ubicacion(0,0);
		ubicacionFin.poblar(ubicacion);
		lista.add(ubicacionFin);
		String redesDeAgua=carg.get("Redes de Agua").toString();
		lista.add(RedDeAguaPersistir.cargarArray(redesDeAgua));
		return lista;
	}

}
